When the usage information is displayed at the top or bottom (as
controlled by `which-key-show-prefix'), then we already accounted
for that by putting (- max-height 1) bindings in each row. But
we did not ensure that the max-height is used when displaying the
result. Instead we used (- max-height 1) here too.
When trying to display usage information at the bottom, the result is
that it is not displayed because it is off-window. When displaying at
the top, then it is displayed, but the last binding is off-window and
never displayed.
This bug did not matter (much) when using the default settings because
then the code used for displaying the window actually ignores the
max-height and just uses the height appropriate to display all lines
in the buffer (i.e., (+ max-height 1)). However, other display
methods, including but not necessarily limited to third-party methods
(such as `which-key-posframe') may choose to, or absolutely have to,
respect max-height. In particular, anything that tries to use the
full height of a frame or window, will be affected by this.
(or prefix-title
(which-key--maybe-get-prefix-title
(key-description prefix-keys))))
+ (when prefix-top-bottom
+ ;; Add back the line earlier reserved for the page information.
+ (setf (which-key--pages-height result) max-lines))
(when (and (= (which-key--pages-num-pages result) 1)
(> which-key-min-display-lines
(which-key--pages-height result)))